home *** CD-ROM | disk | FTP | other *** search
- 100 'Dates in Month ("DATESINMONTH")
- 110 CLS
- 120 COLOR 0,15 : PRINT "Dates in Month" : COLOR 15,0
- 130 PRINT
- 140 ' Get names of months
- 150 DIM MONTHNAMES$ (12)
- 160 FOR N = 1 TO 12
- 170 READ MONTHNAMES$ (N)
- 180 NEXT N
- 190 DATA January, February, March, April, May, June
- 200 DATA July, August, September, October, November, December
- 210 ' Get names of days
- 220 DIM DAYNAMES$ (7)
- 230 FOR N = 0 TO 7
- 240 READ DAYNAMES$ (N)
- 250 NEXT N
- 260 DATA Saturday, Sunday, Monday, Tuesday
- 270 DATA Wednesday, Thursday, Friday, End
- 280 ' Get words 1st through 5th
- 290 DIM ORDINALS$ (5)
- 300 FOR N = 1 TO 5
- 310 READ ORDINALS$ (N)
- 320 NEXT N
- 330 DATA 1st, 2nd, 3rd, 4th, 5th
- 340 ' Get number of days in months
- 350 DIM NDAYS (12)
- 360 FOR N = 1 TO 12
- 370 READ NDAYS (N)
- 380 NEXT N
- 390 DATA 31, 28, 31, 30
- 400 DATA 31, 30, 31, 31
- 410 DATA 30, 31, 30, 31
- 420 ' Let user enter date
- 430 INPUT "Day of week: ", DAY$
- 440 'Find number of day
- 450 IF LEFT$ (DAY$, 1) > "Z" THEN MID$(DAY$, 1) = CHR$ (ASC (LEFT$ (DAY$, 1) ) - 32)
- 460 DAY = 0
- 470 WHILE (DAY <= 6) AND (LEFT$ (DAYNAMES$ (DAY), 2) <> LEFT$ (DAY$, 2) )
- 480 DAY = DAY + 1
- 490 WEND
- 500 IF DAY = 7 THEN GOTO 430 'Invalid day
- 510 INPUT "Month (1-12): ",MONTH
- 520 IF MONTH < 1 OR MONTH > 13 THEN PRINT "** No such month **" : GOTO 510
- 530 INPUT "Year: ", YEAR
- 540 ' Make February 29 days long in leap years
- 550 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
- 560 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
- 570 ' Find day for first of month
- 580 FACTOR = 365 * YEAR + 31 * (MONTH - 1) + 1
- 590 'January or February
- 600 IF MONTH <= 2 THEN FACTOR = FACTOR + (YEAR - 1) \ 4 - INT (3/4 * ( (YEAR - 1) \ 100 + 1 ) )
- 610 'March or later
- 620 IF MONTH >= 3 THEN FACTOR = FACTOR - INT (.4 * MONTH + 2.3) + YEAR \ 4 - INT (3/4 * (YEAR \ 100 + 1) )
- 630 FACTOR = FACTOR - INT (FACTOR / 7) * 7
- 640 IF DAY >= FACTOR THEN DATE = DAY + 1 - FACTOR ELSE DATE = DAY + 8 - FACTOR
- 650 ' Print the dates
- 660 PRINT
- 670 N = 1
- 680 WHILE DATE <= NDAYS (MONTH)
- 690 PRINT ORDINALS$(N); SPC(2); DAYNAMES$(DAY); DATE; MONTHNAMES$ (MONTH)
- 700 N = N + 1
- 710 DATE = DATE + 7
- 720 WEND
- 730 END